home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1982-11-24 | 3.3 KB | 84 lines |
- 1 CLS
- 30 COLOR 2,1
- 100 ' ********** "METEOR" **********
- 110 P$=CHR$(2): B$=CHR$(219): M$=CHR$(25)
- 120 B5$=B$+B$+B$+B$+B$: L$="": TS=0
- 130 Y=178: E1$=STRING$(1,Y): E3$=STRING$(3,Y): E6$=STRING$(6,Y)
- 140 CLS: KEY OFF: PRINT "DO YOU WANT DIRECTIONS (Y/N)?": Z=523
- 150 I$=INKEY$: IF I$="Y" OR I$="y" THEN GOSUB 750: GOTO 170:'**
- 160 IF I$="N" OR I$="n" THEN 170 ELSE Z=(Z+511)MOD 32003: GOTO 150
- 170 PRINT "DO YOU WANT SOUND EFFECTS (Y/N)?"
- 180 I$=INKEY$: IF I$="Y" OR I$="y" THEN N=1: GOTO 200
- 190 IF I$="N" OR I$="n" THEN N=0 ELSE 180
- 200 RANDOMIZE Z: PRINT "HOW HARD (1-9)?";
- 210 I$=INKEY$: A=ASC(I$+" "): IF A>48 AND A<58 THEN A=A-48 ELSE 210
- 220 PC=20+INT(40*RND+1): PR=16+INT(8*RND+1)
- 230 CLS:COLOR 2,0: LOCATE 25,1: PRINT "METEOR!! SCORE:";
- 240 GOSUB 680:'**
- 250 R1=1: R2=24
- 260 C1=INT(RND*80+1): C2=INT(RND*80+1)
- 270 GOSUB 350: GOTO 260:'**
- 280 ' *****PLOT M$ AT R,C CHECKING FOR SCORES, PLAYER MOTION*****
- 290 I$=INKEY$: IF I$<>"" THEN L$=I$
- 300 IF LEN(L$)>0 THEN GOSUB 500:'**
- 310 IF ABS(C-PC)<2 AND ABS(R-PR)<2 THEN 400:'********HIT!!!****************
- 320 IF SCREEN(R,C)=219 THEN S=-1: GOSUB 620:'**
- 330 IF R=24 AND C=80 THEN C=79
- 340 LOCATE R,C: PRINT M$;: RETURN
- 350 ' *****DRAW A LINE FROM C1,R1 TO C2,R2*****
- 360 LO=(C2-C1)/(R2-R1): L=C1-LO
- 370 FOR R=R1 TO R2: L=L+LO: C=INT(0.5+L)
- 380 IF R>PR+1 THEN RETURN: ' GIVE UP IF BELOW TARGET
- 390 GOSUB 280: NEXT R: RETURN:'**
- 400 '*****PLAYER IS HIT, PLAY AGAIN?*****
- 410 PC=PC-4: IF PC>72 THEN PC=72
- 420 IF PC<1 THEN PC=1
- 430 IF PR=24 THEN PR=23
- 440 SOUND 200,N*10
- 450 LOCATE PR,PC: PRINT E1$+"BANG"+E1$;: LOCATE PR+1,PC: PRINT E6$;
- 460 LOCATE 25,35: PRINT " DEL = FINISH, INS = PLAY AGAIN ";
- 470 L$=INKEY$: IF L$=CHR$(0)+CHR$(83) THEN CLS: KEY ON: END:'*********END!!
- 480 IF L$=CHR$(0)+CHR$(82) THEN CLS: RUN:' ***BEGIN AGAIN!!!!
- 490 GOTO 470
- 500 '*****PROCESS KEYBOARD REQUEST*****
- 510 IF L$=CHR$(32) THEN 630:' PAUSE ON SPACE BAR
- 520 IF LEN(L$)=1 THEN L$="":RETURN
- 530 PM=ASC(RIGHT$(L$,1)): I$=L$: L$="": LOCATE PR,PC: PRINT " ";
- 540 IF PM=77 THEN PC=PC+1: L$=I$: IF PC>80 THEN PC=1
- 550 IF PM=75 THEN PC=PC-1: L$=I$: IF PC<1 THEN PC=80
- 560 IF PM=80 AND PR<24 THEN PR=PR+1: L$=I$
- 570 IF PM=72 AND PR>1 THEN PR=PR-1: L$=I$
- 580 IF PC=80 AND PR=24 THEN PR=23
- 590 IF SCREEN(PR,PC)=219 THEN SOUND 440,N: S=10: GOSUB 620
- 600 IF SCREEN(PR,PC)=25 THEN SOUND 420,N: S=2: GOSUB 620
- 610 LOCATE PR,PC: PRINT P$;: RETURN
- 620 TS=TS+S: LOCATE 25,27: PRINT TS;: RETURN: ' *****PRINT SCORE*****
- 630 LOCATE 25,35: PRINT "KEYS: INS=CONTINUE, DEL=STOP, ENTER=RESTORE ";
- 640 L$=INKEY$: IF L$=CHR$(0)+CHR$(82) THEN 720
- 650 IF L$=CHR$(13) THEN 680
- 660 IF L$=CHR$(0)+CHR$(83) THEN CLS: KEY ON: END: ' ************END!!!!!
- 670 GOTO 640
- 680 ' *****PUT TARGETS (B5$) AND PLAYER (P$) ON SCREEN*****
- 690 FOR L=12-A TO 24-A
- 700 LOCATE L,15: PRINT B5$;: LOCATE L,35: PRINT B5$;: LOCATE L,55: PRINT B5$;
- 710 NEXT L: LOCATE PR,PC: PRINT P$;
- 720 LOCATE 25,35:PRINT " HIT SPACE BAR TO PAUSE ";
- 730 IF A<9 THEN A=A+1
- 740 RETURN
- 750 ' *****DIRECTIONS*****
- 760 CLS: PRINT TAB(35);"METEOR": PRINT
- 770 PRINT "The symbol for the player is ";P$
- 780 PRINT "The cursor control keys start the ";P$;" symbol moving.": PRINT
- 790 PRINT "The object is to erase all solid blocks ( ";B$;" )"
- 800 PRINT "before a falling meteor ( ";M$;" ) hits you."
- 810 PRINT "Any letter (and some other keys) will stop cursor motion.": PRINT
- 820 PRINT "Each ";B$;" you erase scores 10 points, and ";
- 830 PRINT "each ";M$;" you erase scores 2 points."
- 840 PRINT "You lose 1 point for each ";B$;" a meteor hits."
- 850 PRINT: PRINT "TO HIT YOU, A METEOR NEEDS TO GET WITHIN ONE SPACE OF YOU"
- 860 PRINT: PRINT TAB(37);E3$: PRINT TAB(37);E1$+P$+E1$
- 870 PRINT TAB(37);E3$: PRINT
- 880 PRINT: PRINT "The space bar stops all action temporarily, and allows ";
- 890 PRINT "restoring targets."
- 900 PRINT "Some extra instructions will appear on the bottom line": PRINT: RETURN
-